/*
LICENCIA
========
Copyright (C) 2009

Autores:

Carlos Alberto Martínez Gadea   <camg6@alu.ua.es>
Manel Simon Martínez            <msm85@alu.ua.es>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef UTIL_H
#define UTIL_H

// Inclusión de librerias
#include <iostream>
#include <string.h>
#include "TLista.h"
#include <fstream>

using namespace std;

// CONSTANTES
// ==========

/* Constantes para escribir en el fichero de salida */

const string kPUNTO     = ".";
/* Comando R */
const string kNO_HUECO  = "No existe hueco de ";
const string kPARA      = " para ";
/* Comando r */
const string kCOMPACT   = "Se realiza compactación para dejar hueco a ";
const string kNO_EX     = "No existe ";
const string kMEM       = " de memoria para ";
/* Comando R y r */
const string kRES       = "Reserva espacio ";
/* Comando L */
const string kLIBERA    = "Libera ";
/* Comando A */
const string kACTIVA    = "Activa ";
const string kACCEDE    = " accede a ";
/* Comando D */
const string kOK        = ". Correcto.\n";
const string kERROR     = ". Error de protección\n";
/* Comando C */
const string kC         = "Realiza compactación\n";
/* Comando F */
const string kFIN       = "Finaliza la simulación\n";
/* Comando M*/
const string kAMP       = "Se ha ampliado la partición ";
const string kCON       = " con ";
const string kNOAMPLI   = "No hay memoria libre suficiente para un incremento de ";
const string kCOMYAMP   = "Procedemos a compactar y ampliar la partición con el prog. ";

const int kALG_PR = 0;         /* Codificación para el algoritmo "primer hueco" */
const int kALG_MH = 1;         /* Codificación para el algoritmo "mejor hueco" */
const int kALG_PH = 2;         /* Codificación para el algoritmo "peor hueco" */
const int kALG_SH = 3;         /* Codificación para el algoritmo "siguiente hueco" */

static int contador       = 0;

// CABECERAS
// =========
void FileRead(char* name);
void ActivaAlgoritmo(string,ofstream&);
int ParseaTamProg(string);
string ParseaNomProg(string);

#endif // UTIL_H
